/*
* 使用自定义命令完全替换pageObject模式的例子
* */
Cypress.Commands.add('login', (username, pwd) => {
  Cypress.log({
    name: 'login',
    message: `${username} | ${pwd}`,
  })

  return cy.request({
    method: 'post',
    url: '/login',
    form: true,
    body: {
      username,
      password: pwd,
    },
  })
})

context('登录测试，PO模式', function () {
  const username = 'jane.lane'
  const pwd = 'password123'

  beforeEach(function () {
    cy.login(username, pwd)
  })

  it('访问受保护页', function () {
    /**
     * cy.request()登录成功后，cypress会自动保存session cookie
     * 所以下面就可以访问登录后才能访问的页面
     */
    cy.visit('/dashboard')
    cy.url().should('eq', 'http://localhost:7077/dashboard')
    cy.get('h1').should('contain', 'jane.lane')
  })
})
